import logging
def use_logging(func):

    def wrapper():
        logging.warn("%s is running" % func.__name__)
        return func()
    return wrapper

@use_logging
def foo():
    print("i am foo")

foo()
############
# functools.wraps: 也为装饰器, 其作用是将原函数中的一部分元信息传递到装饰器中.
#重试装饰器
# def retry(ExceptionToCheck, tries=4, delay=3, backoff=2, logger=None):
# flask.route('/')
## 参考地址：https://zhuanlan.zhihu.com/p/75881441
